using System;
using System.Collections.Generic;
using System.Text;

namespace ReportMaintenanceUtility
{
	public interface IStateManagement<T>
	{
		bool IsDirty { get; }

		List<ChangeLog> SaveState();
		void RestoreState();
		void PrepStateChange(string propertyName);
		bool EqualTo(T other);

		T CreateDeepCopy();
	}
}
